# def stuinfo(name,age,sex="female"):
#     print("函数体内容")
#     print(f"my name is {name} ,my age is {age},my sex ix {sex}")

# 按照形参来区分
    # 必选参数
    # 默认参数
    # 可变长位置参数
    # 可变长关键字参数

# 按照实参来分
    # 位置参数
    # 关键字参数

#函数调用，callable对象
# stuinfo(name="sbc",age=21,sex="male")#可变长关键字参数
# stuinfo("sbc",21,"male")#可变长位置参数

# def myargs(*args):
#     print("可变长的关键字参数")
#     print(args)
#
# def mykwargs(**kwargs):
#     print("可变长的关键字参数")
#     print(kwargs)
#
# myargs(1)
# myargs(1,2)
# myargs("avc",True,100)
# mykwargs(a=1,name="sc")
# print(100,200,300)


#容器类型  unpacking
#*list  --->[1,2,3] --->1,2,3
# #**dict  -->{"a":1,"b":2}  -->a=1,b=2
# lst1=[1,2,3]
# print(lst1)
# print(*lst1)
# d1 = {"a":1,"b":2}
# print(d1)
# # print(**d1)



#函数的返回值  -- 功能的结果
#函数一般只需要考虑，传递什么参数，做什么事情，返回什么结果

#函数默认返回None,可以无返回值，可以有一个以上的返回值


# def stuinfo(name, age, sex="fmale"):
#     print("函数体内容")
#     print(f"my name is {name}, my age is {age}, my sex is {sex}")
#     return 1,2
#
# # stuinfo("sc", 20)
# result, result2 = stuinfo("Sc", 18)  #可以使用一个变量接受，也可以分别接受
# print(f"result is {result}, result2 is {result2}")


#递归函数
#找规律  、 找出口
#f(n)=1*2*3*...*n
#f(n)=n*f(n-1)

















